﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.ServiceModel.DomainServices.Client;
using caedisi.Web.DataModel;
using caedisi.Web.Services;
using System.ComponentModel;

namespace caedisi.Models
{
    /// <summary>
    /// the list of lov entities
    /// </summary>
    public class LovEntities : INotifyPropertyChanged
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="LovEntities"/> class.
        /// </summary>
        /// <param name="context">The context.</param>
        public LovEntities()
        {
            ;
        }


        private EntitySet<CellStateType> _CellStateTypes;
        /// <summary>
        /// Gets or sets the cell state types.
        /// </summary>
        /// <value>
        /// The cell state types.
        /// </value>
        public EntitySet<CellStateType> CellStateTypes
        {
            get
            {
                return _CellStateTypes;
            }
            set
            {
                if (_CellStateTypes != value)
                {
                    _CellStateTypes = value;
                    this.RaisePropertyChanged("CellStateTypes");
                }
            }
        }



        private EntitySet<NeighbourhoodType> _NeighbourhoodTypes;
        /// <summary>
        /// Gets or sets the neighbourhood types.
        /// </summary>
        /// <value>
        /// The neighbourhood types.
        /// </value>
        public EntitySet<NeighbourhoodType> NeighbourhoodTypes
        {
            get
            {
                return _NeighbourhoodTypes;
            }
            set
            {
                if (_NeighbourhoodTypes != value)
                {
                    _NeighbourhoodTypes = value;
                    this.RaisePropertyChanged("NeighbourhoodTypes");
                }
            }
        }

        private EntitySet<Configuration> _Configurations;
        /// <summary>
        /// Gets or sets the configurations.
        /// </summary>
        /// <value>
        /// The configurations.
        /// </value>
        public EntitySet<Configuration> Configurations
        {
            get
            {
                return _Configurations;
            }
            set
            {
                if (_Configurations != value)
                {
                    _Configurations = value;
                    this.RaisePropertyChanged("Configurations");
                }
            }
        }

        #region INotifyPropertyChanged

        public event PropertyChangedEventHandler PropertyChanged;
        /// <summary>
        /// Raises the property changed.
        /// </summary>
        /// <param name="propertyName">Name of the property.</param>
        protected virtual void RaisePropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = this.PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        #endregion
    }
}
